var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var Users = require('../models/user');

//连接数据库
mongoose.connect('mongodb://127.0.0.1:27017/db_staff')

mongoose.connection.on('connected',function(){
  console.log("mongodb connected success");
})
mongoose.connection.on('error',function(){
  console.log("mongodb connected fail");
})
mongoose.connection.on('disconnected',function(){
  console.log("mongodb connected disconnected");
})
/* GET users listing. */
router.get('/', function(req, res, next) {
  Users.find({},function(err,doc){
    if(err){
      res.json({
        status: '1',
        msg: err.message
      })
    }else{
      res.json({
        status: '0',
        mes: '',
        result: {
          count: doc.length,
          list: doc
        }
      })
    }
  })
});
//get root users
router.get('/root', function(req, res, next) {
  Users.find({consumer:{$in:['超级管理员','管理员']}},function(err,doc){
    if(err){
      res.json({
        status: '1',
        msg: err.message
      })
    }else{
      res.json({
        status: '0',
        mes: '',
        result: {
          count: doc.length,
          list: doc
        }
      })
    }
  })
});
//insert users
router.post('/addUser',function(req,res,next){
  let user = req.body;
  Users.findOne({userId:user.userId},function(err1,doc1){
    if(err1){
      res.json({
        status: '1',
        msg: err1.message
      })
    }else if(doc1){
      res.json({
        status: '2',
        msg:　'该用户id已存在'
      })
    }else{
      Users.create(user,function(err,doc){
        if(err){
          res.json({
            status: '3',
            msg: err.message
          })
        }else{
          res.json({
            status: '0',
            msg: doc
          })
        }
      })
    }
  })
  // Users.findOne({userId:userId},function(err,doc){
  //   if(err){
  //     res.json({
  //       status: '1',
  //       msg: err.message
  //     })
  //   }else if(doc){
  //     res.json({
  //       status: '1',
  //       msg: '该用户已存在'
  //     })
  //   }else{
  //     Users.save(user,function(err2,doc2){
  //       if(err2){
  //         res.json({
  //           status: '1',
  //           msg: err2.message
  //         })
  //       }else{
  //         res.json({
  //           status: '0',
  //           msg: '',
  //           result: 'succ'
  //         })
  //       }
  //     })
  //   }
  // })
})
//批量插入
router.post('/addLotUser',function(req,res,next){
  let lotUser = req.body
  Users.insertMany(lotUser.staffData,function(err,doc){
    if(err){
      res.json({
        status: '1',
        msg: err.message
      })
    }else{
      res.json({
        status: '0',
        msg: '批量添加完成',
        result: doc
      })
    }
  })
})
// update user
router.post('/editUser',function(req,res,next){
  let updateUser = req.body
  let id = req.body._id
  Users.findByIdAndUpdate(id,updateUser,function(err,doc){
    if(err){
      res.json({
        status: '1',
        msg: err.message
      })
    }else{
      res.json({
        status: '0',
        msg: doc
      })
    }
  })
})
//updateRoles
router.post('/updateRoles',function(req,res,next){
  let role =req.body
  Users.findByIdAndUpdate(role.id,{consumer:role.role},function(err,doc){
    if(err){
      res.json({
        status: '1',
        msg: err.message
      })
    }else{
      res.json({
        status: '0',
        msg: '角色更改成功'
      })
    }
  })
})
//updateAddAccess
router.post('/updateAdd',function(req,res,next){
  let access =req.body
  Users.findByIdAndUpdate(access.id,{addAccess:access.addAccess},function(err,doc){
    if(err){
      res.json({
        status: '1',
        msg: err.message
      })
    }else{
      res.json({
        status: '0',
        msg: '权限更改成功'
      })
    }
  })
})
//updateDeleteAccess
router.post('/updateDelete',function(req,res,next){
  let access =req.body
  Users.findByIdAndUpdate(access.id,{deleteAccess:access.deleteAccess},function(err,doc){
    if(err){
      res.json({
        status: '1',
        msg: err.message
      })
    }else{
      res.json({
        status: '0',
        msg: '权限更改成功'
      })
    }
  })
})
//updateUpdateAccess
router.post('/updateUpdate',function(req,res,next){
  let access =req.body
  Users.findByIdAndUpdate(access.id,{updateAccess:access.updateAccess},function(err,doc){
    if(err){
      res.json({
        status: '1',
        msg: err.message
      })
    }else{
      res.json({
        status: '0',
        msg: '权限更改成功'
      })
    }
  })
})
//updateFindAccess
router.post('/updateFind',function(req,res,next){
  let access =req.body
  Users.findByIdAndUpdate(access.id,{findAccess:access.findAccess},function(err,doc){
    if(err){
      res.json({
        status: '1',
        msg: err.message
      })
    }else{
      res.json({
        status: '0',
        msg: '权限更改成功'
      })
    }
  })
})
//删除用户
router.post('/deleteUser',function(req,res,next){
  let id = req.body.id
  Users.remove({_id:id},function(err,doc){
    if(err){
      res.json({
        status: '1',
        msg: err.message
      })
    }else{
      res.json({
        status: '0',
        msg: doc
      })
    }
  })
})
//批量删除用户
router.post('/batchDeleteUser',function(req,res,next){
  let userIds = req.body
  Users.remove({userId:{$in:userIds}},function(err,doc){
    if(err){
      res.json({
        status: '1',
        msg: err.message
      })
    }else{
      res.json({
        status: '0',
        msg: '批量删除成功'
      })
    }
  })
})
//用户登录
router.post('/login',function(req,res,next){
  let form = req.body
  Users.findOne({userId: form.username},function(err,doc){
    if(err){
      res.json({
        status: '1',
        msg: err.message
      })
    }else if(!doc){
      res.json({
        status: '2',
        msg: '用户不存在'
      })
    }else if(doc.password != form.password){
      res.json({
        status: '3',
        msg: '用户密码错误'
      })
    }else{
      res.json({
        status: '0',
        msg: '验证成功',
        username: doc.name,
        consumer: doc.consumer,
        addAccess: doc.addAccess,
        deleteAccess: doc.deleteAccess,
        updateAccess: doc.updateAccess,
        findAccess: doc.findAccess
      })
    }
  })
})
module.exports = router;
